package paxos

import "net/rpc"

// MsgArgs 消息参数
type MsgArgs struct {
	Number int         // 提案编号
	Value  interface{} // 提案值
	From   int         // 发送者 id
	To     int         // 接收者 id
}

// MsgReply 响应参数
type MsgReply struct {
	Ok     bool
	Number int
	Value  interface{}
}

// 调用 RPC
func call(srv string, name string, args interface{}, reply interface{}) bool {
	c, err := rpc.Dial("tcp", srv)
	if err != nil {
		return false
	}
	defer func(c *rpc.Client) {
		_ = c.Close()
	}(c)
	err = c.Call(name, args, reply)
	return err == nil
}
